/**
 * Copyright 2021 Tianmian Tech. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: basic-meta.proto

package com.welab.wefe.gateway.api.meta.basic;

public final class BasicMetaProto {
    private BasicMetaProto() {
    }

    public static void registerAllExtensions(
            com.google.protobuf.ExtensionRegistryLite registry) {
    }

    public static void registerAllExtensions(
            com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions(
                (com.google.protobuf.ExtensionRegistryLite) registry);
    }

    public interface EndpointOrBuilder extends
            // @@protoc_insertion_point(interface_extends:com.welab.wefe.gateway.api.meta.basic.Endpoint)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * ip address
         * </pre>
         *
         * <code>string ip = 1;</code>
         *
         * @return The ip.
         */
        String getIp();

        /**
         * <pre>
         * ip address
         * </pre>
         *
         * <code>string ip = 1;</code>
         *
         * @return The bytes for ip.
         */
        com.google.protobuf.ByteString
        getIpBytes();

        /**
         * <pre>
         * port
         * </pre>
         *
         * <code>int32 port = 2;</code>
         *
         * @return The port.
         */
        int getPort();

        /**
         * <pre>
         * host name
         * </pre>
         *
         * <code>string hostname = 3;</code>
         *
         * @return The hostname.
         */
        String getHostname();

        /**
         * <pre>
         * host name
         * </pre>
         *
         * <code>string hostname = 3;</code>
         *
         * @return The bytes for hostname.
         */
        com.google.protobuf.ByteString
        getHostnameBytes();
    }

    /**
     * <pre>
     * network endpoint
     * </pre>
     * <p>
     * Protobuf type {@code com.welab.wefe.gateway.api.meta.basic.Endpoint}
     */
    public static final class Endpoint extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:com.welab.wefe.gateway.api.meta.basic.Endpoint)
            EndpointOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use Endpoint.newBuilder() to construct.
        private Endpoint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private Endpoint() {
            ip_ = "";
            hostname_ = "";
        }

        @Override
        @SuppressWarnings({"unused"})
        protected Object newInstance(
                UnusedPrivateParameter unused) {
            return new Endpoint();
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private Endpoint(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
                throw new NullPointerException();
            }
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                        case 0:
                            done = true;
                            break;
                        case 10: {
                            String s = input.readStringRequireUtf8();

                            ip_ = s;
                            break;
                        }
                        case 16: {

                            port_ = input.readInt32();
                            break;
                        }
                        case 26: {
                            String s = input.readStringRequireUtf8();

                            hostname_ = s;
                            break;
                        }
                        default: {
                            if (!parseUnknownField(
                                    input, unknownFields, extensionRegistry, tag)) {
                                done = true;
                            }
                            break;
                        }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                        e).setUnfinishedMessage(this);
            } finally {
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_descriptor;
        }

        @Override
        protected FieldAccessorTable
        internalGetFieldAccessorTable() {
            return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            Endpoint.class, Builder.class);
        }

        public static final int IP_FIELD_NUMBER = 1;
        private volatile Object ip_;

        /**
         * <pre>
         * ip address
         * </pre>
         *
         * <code>string ip = 1;</code>
         *
         * @return The ip.
         */
        public String getIp() {
            Object ref = ip_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                ip_ = s;
                return s;
            }
        }

        /**
         * <pre>
         * ip address
         * </pre>
         *
         * <code>string ip = 1;</code>
         *
         * @return The bytes for ip.
         */
        public com.google.protobuf.ByteString
        getIpBytes() {
            Object ref = ip_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                ip_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int PORT_FIELD_NUMBER = 2;
        private int port_;

        /**
         * <pre>
         * port
         * </pre>
         *
         * <code>int32 port = 2;</code>
         *
         * @return The port.
         */
        public int getPort() {
            return port_;
        }

        public static final int HOSTNAME_FIELD_NUMBER = 3;
        private volatile Object hostname_;

        /**
         * <pre>
         * host name
         * </pre>
         *
         * <code>string hostname = 3;</code>
         *
         * @return The hostname.
         */
        public String getHostname() {
            Object ref = hostname_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                hostname_ = s;
                return s;
            }
        }

        /**
         * <pre>
         * host name
         * </pre>
         *
         * <code>string hostname = 3;</code>
         *
         * @return The bytes for hostname.
         */
        public com.google.protobuf.ByteString
        getHostnameBytes() {
            Object ref = hostname_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                hostname_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        private byte memoizedIsInitialized = -1;

        @Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (!getIpBytes().isEmpty()) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ip_);
            }
            if (port_ != 0) {
                output.writeInt32(2, port_);
            }
            if (!getHostnameBytes().isEmpty()) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 3, hostname_);
            }
            unknownFields.writeTo(output);
        }

        @Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (!getIpBytes().isEmpty()) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ip_);
            }
            if (port_ != 0) {
                size += com.google.protobuf.CodedOutputStream
                        .computeInt32Size(2, port_);
            }
            if (!getHostnameBytes().isEmpty()) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, hostname_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof Endpoint)) {
                return super.equals(obj);
            }
            Endpoint other = (Endpoint) obj;

            if (!getIp()
                    .equals(other.getIp())) return false;
            if (getPort()
                    != other.getPort()) return false;
            if (!getHostname()
                    .equals(other.getHostname())) return false;
            if (!unknownFields.equals(other.unknownFields)) return false;
            return true;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + IP_FIELD_NUMBER;
            hash = (53 * hash) + getIp().hashCode();
            hash = (37 * hash) + PORT_FIELD_NUMBER;
            hash = (53 * hash) + getPort();
            hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
            hash = (53 * hash) + getHostname().hashCode();
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static Endpoint parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Endpoint parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Endpoint parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Endpoint parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Endpoint parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Endpoint parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Endpoint parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static Endpoint parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static Endpoint parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static Endpoint parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static Endpoint parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static Endpoint parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(Endpoint prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(
                BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * <pre>
         * network endpoint
         * </pre>
         * <p>
         * Protobuf type {@code com.welab.wefe.gateway.api.meta.basic.Endpoint}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:com.welab.wefe.gateway.api.meta.basic.Endpoint)
                EndpointOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_descriptor;
            }

            @Override
            protected FieldAccessorTable
            internalGetFieldAccessorTable() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Endpoint.class, Builder.class);
            }

            // Construct using com.welab.wefe.gateway.api.meta.basic.BasicMetaProto.Endpoint.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                        .alwaysUseFieldBuilders) {
                }
            }

            @Override
            public Builder clear() {
                super.clear();
                ip_ = "";

                port_ = 0;

                hostname_ = "";

                return this;
            }

            @Override
            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_descriptor;
            }

            @Override
            public Endpoint getDefaultInstanceForType() {
                return Endpoint.getDefaultInstance();
            }

            @Override
            public Endpoint build() {
                Endpoint result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @Override
            public Endpoint buildPartial() {
                Endpoint result = new Endpoint(this);
                result.ip_ = ip_;
                result.port_ = port_;
                result.hostname_ = hostname_;
                onBuilt();
                return result;
            }

            @Override
            public Builder clone() {
                return super.clone();
            }

            @Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    Object value) {
                return super.setField(field, value);
            }

            @Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    Object value) {
                return super.addRepeatedField(field, value);
            }

            @Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof Endpoint) {
                    return mergeFrom((Endpoint) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(Endpoint other) {
                if (other == Endpoint.getDefaultInstance()) return this;
                if (!other.getIp().isEmpty()) {
                    ip_ = other.ip_;
                    onChanged();
                }
                if (other.getPort() != 0) {
                    setPort(other.getPort());
                }
                if (!other.getHostname().isEmpty()) {
                    hostname_ = other.hostname_;
                    onChanged();
                }
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            @Override
            public final boolean isInitialized() {
                return true;
            }

            @Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                Endpoint parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (Endpoint) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private Object ip_ = "";

            /**
             * <pre>
             * ip address
             * </pre>
             *
             * <code>string ip = 1;</code>
             *
             * @return The ip.
             */
            public String getIp() {
                Object ref = ip_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    ip_ = s;
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <pre>
             * ip address
             * </pre>
             *
             * <code>string ip = 1;</code>
             *
             * @return The bytes for ip.
             */
            public com.google.protobuf.ByteString
            getIpBytes() {
                Object ref = ip_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (String) ref);
                    ip_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <pre>
             * ip address
             * </pre>
             *
             * <code>string ip = 1;</code>
             *
             * @param value The ip to set.
             * @return This builder for chaining.
             */
            public Builder setIp(
                    String value) {
                if (value == null) {
                    throw new NullPointerException();
                }

                ip_ = value;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * ip address
             * </pre>
             *
             * <code>string ip = 1;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearIp() {

                ip_ = getDefaultInstance().getIp();
                onChanged();
                return this;
            }

            /**
             * <pre>
             * ip address
             * </pre>
             *
             * <code>string ip = 1;</code>
             *
             * @param value The bytes for ip to set.
             * @return This builder for chaining.
             */
            public Builder setIpBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);

                ip_ = value;
                onChanged();
                return this;
            }

            private int port_;

            /**
             * <pre>
             * port
             * </pre>
             *
             * <code>int32 port = 2;</code>
             *
             * @return The port.
             */
            public int getPort() {
                return port_;
            }

            /**
             * <pre>
             * port
             * </pre>
             *
             * <code>int32 port = 2;</code>
             *
             * @param value The port to set.
             * @return This builder for chaining.
             */
            public Builder setPort(int value) {

                port_ = value;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * port
             * </pre>
             *
             * <code>int32 port = 2;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearPort() {

                port_ = 0;
                onChanged();
                return this;
            }

            private Object hostname_ = "";

            /**
             * <pre>
             * host name
             * </pre>
             *
             * <code>string hostname = 3;</code>
             *
             * @return The hostname.
             */
            public String getHostname() {
                Object ref = hostname_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    hostname_ = s;
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <pre>
             * host name
             * </pre>
             *
             * <code>string hostname = 3;</code>
             *
             * @return The bytes for hostname.
             */
            public com.google.protobuf.ByteString
            getHostnameBytes() {
                Object ref = hostname_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (String) ref);
                    hostname_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <pre>
             * host name
             * </pre>
             *
             * <code>string hostname = 3;</code>
             *
             * @param value The hostname to set.
             * @return This builder for chaining.
             */
            public Builder setHostname(
                    String value) {
                if (value == null) {
                    throw new NullPointerException();
                }

                hostname_ = value;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * host name
             * </pre>
             *
             * <code>string hostname = 3;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearHostname() {

                hostname_ = getDefaultInstance().getHostname();
                onChanged();
                return this;
            }

            /**
             * <pre>
             * host name
             * </pre>
             *
             * <code>string hostname = 3;</code>
             *
             * @param value The bytes for hostname to set.
             * @return This builder for chaining.
             */
            public Builder setHostnameBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);

                hostname_ = value;
                onChanged();
                return this;
            }

            @Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:com.welab.wefe.gateway.api.meta.basic.Endpoint)
        }

        // @@protoc_insertion_point(class_scope:com.welab.wefe.gateway.api.meta.basic.Endpoint)
        private static final Endpoint DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new Endpoint();
        }

        public static Endpoint getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<Endpoint>
                PARSER = new com.google.protobuf.AbstractParser<Endpoint>() {
            @Override
            public Endpoint parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return new Endpoint(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<Endpoint> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<Endpoint> getParserForType() {
            return PARSER;
        }

        @Override
        public Endpoint getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface EndpointsOrBuilder extends
            // @@protoc_insertion_point(interface_extends:com.welab.wefe.gateway.api.meta.basic.Endpoints)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        java.util.List<Endpoint>
        getEndpointsList();

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        Endpoint getEndpoints(int index);

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        int getEndpointsCount();

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        java.util.List<? extends EndpointOrBuilder>
        getEndpointsOrBuilderList();

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        EndpointOrBuilder getEndpointsOrBuilder(
                int index);
    }

    /**
     * Protobuf type {@code com.welab.wefe.gateway.api.meta.basic.Endpoints}
     */
    public static final class Endpoints extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:com.welab.wefe.gateway.api.meta.basic.Endpoints)
            EndpointsOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use Endpoints.newBuilder() to construct.
        private Endpoints(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private Endpoints() {
            endpoints_ = java.util.Collections.emptyList();
        }

        @Override
        @SuppressWarnings({"unused"})
        protected Object newInstance(
                UnusedPrivateParameter unused) {
            return new Endpoints();
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private Endpoints(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
                throw new NullPointerException();
            }
            int mutable_bitField0_ = 0;
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                        case 0:
                            done = true;
                            break;
                        case 10: {
                            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                                endpoints_ = new java.util.ArrayList<>();
                                mutable_bitField0_ |= 0x00000001;
                            }
                            endpoints_.add(
                                    input.readMessage(Endpoint.parser(), extensionRegistry));
                            break;
                        }
                        default: {
                            if (!parseUnknownField(
                                    input, unknownFields, extensionRegistry, tag)) {
                                done = true;
                            }
                            break;
                        }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                        e).setUnfinishedMessage(this);
            } finally {
                if (((mutable_bitField0_ & 0x00000001) != 0)) {
                    endpoints_ = java.util.Collections.unmodifiableList(endpoints_);
                }
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_descriptor;
        }

        @Override
        protected FieldAccessorTable
        internalGetFieldAccessorTable() {
            return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            Endpoints.class, Builder.class);
        }

        public static final int ENDPOINTS_FIELD_NUMBER = 1;
        private java.util.List<Endpoint> endpoints_;

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        public java.util.List<Endpoint> getEndpointsList() {
            return endpoints_;
        }

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        public java.util.List<? extends EndpointOrBuilder>
        getEndpointsOrBuilderList() {
            return endpoints_;
        }

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        public int getEndpointsCount() {
            return endpoints_.size();
        }

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        public Endpoint getEndpoints(int index) {
            return endpoints_.get(index);
        }

        /**
         * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
         */
        public EndpointOrBuilder getEndpointsOrBuilder(
                int index) {
            return endpoints_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < endpoints_.size(); i++) {
                output.writeMessage(1, endpoints_.get(i));
            }
            unknownFields.writeTo(output);
        }

        @Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            for (int i = 0; i < endpoints_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(1, endpoints_.get(i));
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof Endpoints)) {
                return super.equals(obj);
            }
            Endpoints other = (Endpoints) obj;

            if (!getEndpointsList()
                    .equals(other.getEndpointsList())) return false;
            if (!unknownFields.equals(other.unknownFields)) return false;
            return true;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getEndpointsCount() > 0) {
                hash = (37 * hash) + ENDPOINTS_FIELD_NUMBER;
                hash = (53 * hash) + getEndpointsList().hashCode();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static Endpoints parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Endpoints parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Endpoints parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Endpoints parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Endpoints parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Endpoints parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Endpoints parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static Endpoints parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static Endpoints parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static Endpoints parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static Endpoints parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static Endpoints parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(Endpoints prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(
                BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code com.welab.wefe.gateway.api.meta.basic.Endpoints}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:com.welab.wefe.gateway.api.meta.basic.Endpoints)
                EndpointsOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_descriptor;
            }

            @Override
            protected FieldAccessorTable
            internalGetFieldAccessorTable() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Endpoints.class, Builder.class);
            }

            // Construct using com.welab.wefe.gateway.api.meta.basic.BasicMetaProto.Endpoints.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                        .alwaysUseFieldBuilders) {
                    getEndpointsFieldBuilder();
                }
            }

            @Override
            public Builder clear() {
                super.clear();
                if (endpointsBuilder_ == null) {
                    endpoints_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                } else {
                    endpointsBuilder_.clear();
                }
                return this;
            }

            @Override
            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_descriptor;
            }

            @Override
            public Endpoints getDefaultInstanceForType() {
                return Endpoints.getDefaultInstance();
            }

            @Override
            public Endpoints build() {
                Endpoints result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @Override
            public Endpoints buildPartial() {
                Endpoints result = new Endpoints(this);
                int from_bitField0_ = bitField0_;
                if (endpointsBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        endpoints_ = java.util.Collections.unmodifiableList(endpoints_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.endpoints_ = endpoints_;
                } else {
                    result.endpoints_ = endpointsBuilder_.build();
                }
                onBuilt();
                return result;
            }

            @Override
            public Builder clone() {
                return super.clone();
            }

            @Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    Object value) {
                return super.setField(field, value);
            }

            @Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    Object value) {
                return super.addRepeatedField(field, value);
            }

            @Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof Endpoints) {
                    return mergeFrom((Endpoints) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(Endpoints other) {
                if (other == Endpoints.getDefaultInstance()) return this;
                if (endpointsBuilder_ == null) {
                    if (!other.endpoints_.isEmpty()) {
                        if (endpoints_.isEmpty()) {
                            endpoints_ = other.endpoints_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureEndpointsIsMutable();
                            endpoints_.addAll(other.endpoints_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.endpoints_.isEmpty()) {
                        if (endpointsBuilder_.isEmpty()) {
                            endpointsBuilder_.dispose();
                            endpointsBuilder_ = null;
                            endpoints_ = other.endpoints_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            endpointsBuilder_ =
                                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                                            getEndpointsFieldBuilder() : null;
                        } else {
                            endpointsBuilder_.addAllMessages(other.endpoints_);
                        }
                    }
                }
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            @Override
            public final boolean isInitialized() {
                return true;
            }

            @Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                Endpoints parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (Endpoints) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private java.util.List<Endpoint> endpoints_ =
                    java.util.Collections.emptyList();

            private void ensureEndpointsIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    endpoints_ = new java.util.ArrayList<Endpoint>(endpoints_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<
                    Endpoint, Endpoint.Builder, EndpointOrBuilder> endpointsBuilder_;

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public java.util.List<Endpoint> getEndpointsList() {
                if (endpointsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(endpoints_);
                } else {
                    return endpointsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public int getEndpointsCount() {
                if (endpointsBuilder_ == null) {
                    return endpoints_.size();
                } else {
                    return endpointsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Endpoint getEndpoints(int index) {
                if (endpointsBuilder_ == null) {
                    return endpoints_.get(index);
                } else {
                    return endpointsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder setEndpoints(
                    int index, Endpoint value) {
                if (endpointsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureEndpointsIsMutable();
                    endpoints_.set(index, value);
                    onChanged();
                } else {
                    endpointsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder setEndpoints(
                    int index, Endpoint.Builder builderForValue) {
                if (endpointsBuilder_ == null) {
                    ensureEndpointsIsMutable();
                    endpoints_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    endpointsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder addEndpoints(Endpoint value) {
                if (endpointsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureEndpointsIsMutable();
                    endpoints_.add(value);
                    onChanged();
                } else {
                    endpointsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder addEndpoints(
                    int index, Endpoint value) {
                if (endpointsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureEndpointsIsMutable();
                    endpoints_.add(index, value);
                    onChanged();
                } else {
                    endpointsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder addEndpoints(
                    Endpoint.Builder builderForValue) {
                if (endpointsBuilder_ == null) {
                    ensureEndpointsIsMutable();
                    endpoints_.add(builderForValue.build());
                    onChanged();
                } else {
                    endpointsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder addEndpoints(
                    int index, Endpoint.Builder builderForValue) {
                if (endpointsBuilder_ == null) {
                    ensureEndpointsIsMutable();
                    endpoints_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    endpointsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder addAllEndpoints(
                    Iterable<? extends Endpoint> values) {
                if (endpointsBuilder_ == null) {
                    ensureEndpointsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(
                            values, endpoints_);
                    onChanged();
                } else {
                    endpointsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder clearEndpoints() {
                if (endpointsBuilder_ == null) {
                    endpoints_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    endpointsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Builder removeEndpoints(int index) {
                if (endpointsBuilder_ == null) {
                    ensureEndpointsIsMutable();
                    endpoints_.remove(index);
                    onChanged();
                } else {
                    endpointsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Endpoint.Builder getEndpointsBuilder(
                    int index) {
                return getEndpointsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public EndpointOrBuilder getEndpointsOrBuilder(
                    int index) {
                if (endpointsBuilder_ == null) {
                    return endpoints_.get(index);
                } else {
                    return endpointsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public java.util.List<? extends EndpointOrBuilder>
            getEndpointsOrBuilderList() {
                if (endpointsBuilder_ != null) {
                    return endpointsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(endpoints_);
                }
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Endpoint.Builder addEndpointsBuilder() {
                return getEndpointsFieldBuilder().addBuilder(
                        Endpoint.getDefaultInstance());
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public Endpoint.Builder addEndpointsBuilder(
                    int index) {
                return getEndpointsFieldBuilder().addBuilder(
                        index, Endpoint.getDefaultInstance());
            }

            /**
             * <code>repeated .com.welab.wefe.gateway.api.meta.basic.Endpoint endpoints = 1;</code>
             */
            public java.util.List<Endpoint.Builder>
            getEndpointsBuilderList() {
                return getEndpointsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<
                    Endpoint, Endpoint.Builder, EndpointOrBuilder>
            getEndpointsFieldBuilder() {
                if (endpointsBuilder_ == null) {
                    endpointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                            Endpoint, Endpoint.Builder, EndpointOrBuilder>(
                            endpoints_,
                            ((bitField0_ & 0x00000001) != 0),
                            getParentForChildren(),
                            isClean());
                    endpoints_ = null;
                }
                return endpointsBuilder_;
            }

            @Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:com.welab.wefe.gateway.api.meta.basic.Endpoints)
        }

        // @@protoc_insertion_point(class_scope:com.welab.wefe.gateway.api.meta.basic.Endpoints)
        private static final Endpoints DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new Endpoints();
        }

        public static Endpoints getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<Endpoints>
                PARSER = new com.google.protobuf.AbstractParser<Endpoints>() {
            @Override
            public Endpoints parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return new Endpoints(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<Endpoints> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<Endpoints> getParserForType() {
            return PARSER;
        }

        @Override
        public Endpoints getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface ReturnStatusOrBuilder extends
            // @@protoc_insertion_point(interface_extends:com.welab.wefe.gateway.api.meta.basic.ReturnStatus)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>int32 code = 1;</code>
         *
         * @return The code.
         */
        int getCode();

        /**
         * <code>string message = 2;</code>
         *
         * @return The message.
         */
        String getMessage();

        /**
         * <code>string message = 2;</code>
         *
         * @return The bytes for message.
         */
        com.google.protobuf.ByteString
        getMessageBytes();

        /**
         * <code>string sessionId = 3;</code>
         *
         * @return The sessionId.
         */
        String getSessionId();

        /**
         * <code>string sessionId = 3;</code>
         *
         * @return The bytes for sessionId.
         */
        com.google.protobuf.ByteString
        getSessionIdBytes();

        /**
         * <code>string data = 4;</code>
         *
         * @return The data.
         */
        String getData();

        /**
         * <code>string data = 4;</code>
         *
         * @return The bytes for data.
         */
        com.google.protobuf.ByteString
        getDataBytes();
    }

    /**
     * <pre>
     * generic return status
     * </pre>
     * <p>
     * Protobuf type {@code com.welab.wefe.gateway.api.meta.basic.ReturnStatus}
     */
    public static final class ReturnStatus extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:com.welab.wefe.gateway.api.meta.basic.ReturnStatus)
            ReturnStatusOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use ReturnStatus.newBuilder() to construct.
        private ReturnStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private ReturnStatus() {
            message_ = "";
            sessionId_ = "";
            data_ = "";
        }

        @Override
        @SuppressWarnings({"unused"})
        protected Object newInstance(
                UnusedPrivateParameter unused) {
            return new ReturnStatus();
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private ReturnStatus(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
                throw new NullPointerException();
            }
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                        case 0:
                            done = true;
                            break;
                        case 8: {

                            code_ = input.readInt32();
                            break;
                        }
                        case 18: {
                            String s = input.readStringRequireUtf8();

                            message_ = s;
                            break;
                        }
                        case 26: {
                            String s = input.readStringRequireUtf8();

                            sessionId_ = s;
                            break;
                        }
                        case 34: {
                            String s = input.readStringRequireUtf8();

                            data_ = s;
                            break;
                        }
                        default: {
                            if (!parseUnknownField(
                                    input, unknownFields, extensionRegistry, tag)) {
                                done = true;
                            }
                            break;
                        }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                        e).setUnfinishedMessage(this);
            } finally {
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_descriptor;
        }

        @Override
        protected FieldAccessorTable
        internalGetFieldAccessorTable() {
            return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            ReturnStatus.class, Builder.class);
        }

        public static final int CODE_FIELD_NUMBER = 1;
        private int code_;

        /**
         * <code>int32 code = 1;</code>
         *
         * @return The code.
         */
        public int getCode() {
            return code_;
        }

        public static final int MESSAGE_FIELD_NUMBER = 2;
        private volatile Object message_;

        /**
         * <code>string message = 2;</code>
         *
         * @return The message.
         */
        public String getMessage() {
            Object ref = message_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                message_ = s;
                return s;
            }
        }

        /**
         * <code>string message = 2;</code>
         *
         * @return The bytes for message.
         */
        public com.google.protobuf.ByteString
        getMessageBytes() {
            Object ref = message_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                message_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int SESSIONID_FIELD_NUMBER = 3;
        private volatile Object sessionId_;

        /**
         * <code>string sessionId = 3;</code>
         *
         * @return The sessionId.
         */
        public String getSessionId() {
            Object ref = sessionId_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                sessionId_ = s;
                return s;
            }
        }

        /**
         * <code>string sessionId = 3;</code>
         *
         * @return The bytes for sessionId.
         */
        public com.google.protobuf.ByteString
        getSessionIdBytes() {
            Object ref = sessionId_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                sessionId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int DATA_FIELD_NUMBER = 4;
        private volatile Object data_;

        /**
         * <code>string data = 4;</code>
         *
         * @return The data.
         */
        public String getData() {
            Object ref = data_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                data_ = s;
                return s;
            }
        }

        /**
         * <code>string data = 4;</code>
         *
         * @return The bytes for data.
         */
        public com.google.protobuf.ByteString
        getDataBytes() {
            Object ref = data_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                data_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        private byte memoizedIsInitialized = -1;

        @Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (code_ != 0) {
                output.writeInt32(1, code_);
            }
            if (!getMessageBytes().isEmpty()) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
            }
            if (!getSessionIdBytes().isEmpty()) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sessionId_);
            }
            if (!getDataBytes().isEmpty()) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 4, data_);
            }
            unknownFields.writeTo(output);
        }

        @Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (code_ != 0) {
                size += com.google.protobuf.CodedOutputStream
                        .computeInt32Size(1, code_);
            }
            if (!getMessageBytes().isEmpty()) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
            }
            if (!getSessionIdBytes().isEmpty()) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, sessionId_);
            }
            if (!getDataBytes().isEmpty()) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, data_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof ReturnStatus)) {
                return super.equals(obj);
            }
            ReturnStatus other = (ReturnStatus) obj;

            if (getCode()
                    != other.getCode()) return false;
            if (!getMessage()
                    .equals(other.getMessage())) return false;
            if (!getSessionId()
                    .equals(other.getSessionId())) return false;
            if (!getData()
                    .equals(other.getData())) return false;
            if (!unknownFields.equals(other.unknownFields)) return false;
            return true;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + CODE_FIELD_NUMBER;
            hash = (53 * hash) + getCode();
            hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
            hash = (53 * hash) + getMessage().hashCode();
            hash = (37 * hash) + SESSIONID_FIELD_NUMBER;
            hash = (53 * hash) + getSessionId().hashCode();
            hash = (37 * hash) + DATA_FIELD_NUMBER;
            hash = (53 * hash) + getData().hashCode();
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static ReturnStatus parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static ReturnStatus parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static ReturnStatus parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static ReturnStatus parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static ReturnStatus parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static ReturnStatus parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static ReturnStatus parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static ReturnStatus parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static ReturnStatus parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static ReturnStatus parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static ReturnStatus parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static ReturnStatus parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(ReturnStatus prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(
                BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * <pre>
         * generic return status
         * </pre>
         * <p>
         * Protobuf type {@code com.welab.wefe.gateway.api.meta.basic.ReturnStatus}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:com.welab.wefe.gateway.api.meta.basic.ReturnStatus)
                ReturnStatusOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_descriptor;
            }

            @Override
            protected FieldAccessorTable
            internalGetFieldAccessorTable() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                ReturnStatus.class, Builder.class);
            }

            // Construct using com.welab.wefe.gateway.api.meta.basic.BasicMetaProto.ReturnStatus.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                        .alwaysUseFieldBuilders) {
                }
            }

            @Override
            public Builder clear() {
                super.clear();
                code_ = 0;

                message_ = "";

                sessionId_ = "";

                data_ = "";

                return this;
            }

            @Override
            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return BasicMetaProto.internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_descriptor;
            }

            @Override
            public ReturnStatus getDefaultInstanceForType() {
                return ReturnStatus.getDefaultInstance();
            }

            @Override
            public ReturnStatus build() {
                ReturnStatus result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @Override
            public ReturnStatus buildPartial() {
                ReturnStatus result = new ReturnStatus(this);
                result.code_ = code_;
                result.message_ = message_;
                result.sessionId_ = sessionId_;
                result.data_ = data_;
                onBuilt();
                return result;
            }

            @Override
            public Builder clone() {
                return super.clone();
            }

            @Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    Object value) {
                return super.setField(field, value);
            }

            @Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    Object value) {
                return super.addRepeatedField(field, value);
            }

            @Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof ReturnStatus) {
                    return mergeFrom((ReturnStatus) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(ReturnStatus other) {
                if (other == ReturnStatus.getDefaultInstance()) return this;
                if (other.getCode() != 0) {
                    setCode(other.getCode());
                }
                if (!other.getMessage().isEmpty()) {
                    message_ = other.message_;
                    onChanged();
                }
                if (!other.getSessionId().isEmpty()) {
                    sessionId_ = other.sessionId_;
                    onChanged();
                }
                if (!other.getData().isEmpty()) {
                    data_ = other.data_;
                    onChanged();
                }
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            @Override
            public final boolean isInitialized() {
                return true;
            }

            @Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                ReturnStatus parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (ReturnStatus) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int code_;

            /**
             * <code>int32 code = 1;</code>
             *
             * @return The code.
             */
            public int getCode() {
                return code_;
            }

            /**
             * <code>int32 code = 1;</code>
             *
             * @param value The code to set.
             * @return This builder for chaining.
             */
            public Builder setCode(int value) {

                code_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>int32 code = 1;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearCode() {

                code_ = 0;
                onChanged();
                return this;
            }

            private Object message_ = "";

            /**
             * <code>string message = 2;</code>
             *
             * @return The message.
             */
            public String getMessage() {
                Object ref = message_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    message_ = s;
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <code>string message = 2;</code>
             *
             * @return The bytes for message.
             */
            public com.google.protobuf.ByteString
            getMessageBytes() {
                Object ref = message_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (String) ref);
                    message_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string message = 2;</code>
             *
             * @param value The message to set.
             * @return This builder for chaining.
             */
            public Builder setMessage(
                    String value) {
                if (value == null) {
                    throw new NullPointerException();
                }

                message_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>string message = 2;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearMessage() {

                message_ = getDefaultInstance().getMessage();
                onChanged();
                return this;
            }

            /**
             * <code>string message = 2;</code>
             *
             * @param value The bytes for message to set.
             * @return This builder for chaining.
             */
            public Builder setMessageBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);

                message_ = value;
                onChanged();
                return this;
            }

            private Object sessionId_ = "";

            /**
             * <code>string sessionId = 3;</code>
             *
             * @return The sessionId.
             */
            public String getSessionId() {
                Object ref = sessionId_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    sessionId_ = s;
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <code>string sessionId = 3;</code>
             *
             * @return The bytes for sessionId.
             */
            public com.google.protobuf.ByteString
            getSessionIdBytes() {
                Object ref = sessionId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (String) ref);
                    sessionId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string sessionId = 3;</code>
             *
             * @param value The sessionId to set.
             * @return This builder for chaining.
             */
            public Builder setSessionId(
                    String value) {
                if (value == null) {
                    throw new NullPointerException();
                }

                sessionId_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>string sessionId = 3;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearSessionId() {

                sessionId_ = getDefaultInstance().getSessionId();
                onChanged();
                return this;
            }

            /**
             * <code>string sessionId = 3;</code>
             *
             * @param value The bytes for sessionId to set.
             * @return This builder for chaining.
             */
            public Builder setSessionIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);

                sessionId_ = value;
                onChanged();
                return this;
            }

            private Object data_ = "";

            /**
             * <code>string data = 4;</code>
             *
             * @return The data.
             */
            public String getData() {
                Object ref = data_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    data_ = s;
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <code>string data = 4;</code>
             *
             * @return The bytes for data.
             */
            public com.google.protobuf.ByteString
            getDataBytes() {
                Object ref = data_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (String) ref);
                    data_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string data = 4;</code>
             *
             * @param value The data to set.
             * @return This builder for chaining.
             */
            public Builder setData(
                    String value) {
                if (value == null) {
                    throw new NullPointerException();
                }

                data_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>string data = 4;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearData() {

                data_ = getDefaultInstance().getData();
                onChanged();
                return this;
            }

            /**
             * <code>string data = 4;</code>
             *
             * @param value The bytes for data to set.
             * @return This builder for chaining.
             */
            public Builder setDataBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);

                data_ = value;
                onChanged();
                return this;
            }

            @Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:com.welab.wefe.gateway.api.meta.basic.ReturnStatus)
        }

        // @@protoc_insertion_point(class_scope:com.welab.wefe.gateway.api.meta.basic.ReturnStatus)
        private static final ReturnStatus DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new ReturnStatus();
        }

        public static ReturnStatus getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<ReturnStatus>
                PARSER = new com.google.protobuf.AbstractParser<ReturnStatus>() {
            @Override
            public ReturnStatus parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return new ReturnStatus(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<ReturnStatus> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<ReturnStatus> getParserForType() {
            return PARSER;
        }

        @Override
        public ReturnStatus getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor
    getDescriptor() {
        return descriptor;
    }

    private static com.google.protobuf.Descriptors.FileDescriptor
            descriptor;

    static {
        String[] descriptorData = {
                "\n\020basic-meta.proto\022%com.welab.wefe.gatew" +
                        "ay.api.meta.basic\"6\n\010Endpoint\022\n\n\002ip\030\001 \001(" +
                        "\t\022\014\n\004port\030\002 \001(\005\022\020\n\010hostname\030\003 \001(\t\"O\n\tEnd" +
                        "points\022B\n\tendpoints\030\001 \003(\0132/.com.welab.we" +
                        "fe.gateway.api.meta.basic.Endpoint\"N\n\014Re" +
                        "turnStatus\022\014\n\004code\030\001 \001(\005\022\017\n\007message\030\002 \001(" +
                        "\t\022\021\n\tsessionId\030\003 \001(\t\022\014\n\004data\030\004 \001(\tB\020B\016Ba" +
                        "sicMetaProtob\006proto3"
        };
        descriptor = com.google.protobuf.Descriptors.FileDescriptor
                .internalBuildGeneratedFileFrom(descriptorData,
                        new com.google.protobuf.Descriptors.FileDescriptor[]{
                        });
        internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_descriptor =
                getDescriptor().getMessageTypes().get(0);
        internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_fieldAccessorTable = new
                com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoint_descriptor,
                new String[]{"Ip", "Port", "Hostname",});
        internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_descriptor =
                getDescriptor().getMessageTypes().get(1);
        internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_fieldAccessorTable = new
                com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_com_welab_wefe_gateway_api_meta_basic_Endpoints_descriptor,
                new String[]{"Endpoints",});
        internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_descriptor =
                getDescriptor().getMessageTypes().get(2);
        internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_fieldAccessorTable = new
                com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_com_welab_wefe_gateway_api_meta_basic_ReturnStatus_descriptor,
                new String[]{"Code", "Message", "SessionId", "Data",});
    }

    // @@protoc_insertion_point(outer_class_scope)
}
